Use of robots have grown exponentially in the past two decades. Robots are now being used in almost every field to support humans in complex and labor-intensive work. For example, robots, including robotic arms, are used in warehouses for picking unarranged objects in a bin and placing it in an arranged order at another location.
To provide a robotic solution, a combination of several robot hardware and software solutions are required to work in collaboration. For example, the robotic solution in a warehouse includes a combination of image capturing and object detection software for detecting the objects and one or more robotic arms to pick and drop the detected object. Currently, there is no available solution that allows a user to select different software and hardware components to generate and execute the robotic solution.
In addition, a user may want to check whether a robotic solution executes properly when the robotic solution environment is changed. For example, different warehouses have different layouts, different obstacles, or different positions where the obstacles are positioned. A user may want to check whether the robotic solution executes when any of the environment parameters are changed. Currently there are no solution that allows a user to instantly check whether the generated robotic solution executes in these different environments.
Finally, each robotic company has its own proprietary hardware controller that is used to control robots corresponding to the particular hardware manufacturer. This limits the utility of these controllers to plan and execute a robotic solution that involves robots manufactured by different hardware manufacturers.